# matplotlib  seaborn  bokeh  pyecharts
import matplotlib.pyplot as plt
import numpy as np

# 创建画布（可以省）
plt.figure(figsize=(9,5),dpi=120,facecolor='lightgrey')# 同一时间只有一个画布
# figsize尺寸  dpi分辨率  法测color背景色
# 画图
data1=np.random.randint(100,201,50)
plt.plot(data1,linewidth=0.1,color='red',marker='*') # 折线
#linewidth线宽  color线色
#bata1.plot()   若是DataFrame或Series还可以
#显示
plt.show()

#散点图
x=np.random.randint(800,3001,8)
y=np.random.randint(5000,40001,8)
plt.scatter(x,y)
plt.show()

#柱状图
plt.rcParams['font.family']=['SimHei'] # 配置matplotlib字体为支持中文的
plt.rcParams['axes.unicode_minus']=False  # 配置-的显示
x=np.arange(4)
y=np.random.randint(20,50,4)
y2=np.random.randint(30,80,4)
# 让两条错开，  width条宽  label注释
plt.bar(x-0.1,y,width=0.2,label='甲')
plt.bar(x+0.1,y2,width=0.2,label='乙')
plt.legend(loc='lower right')# 打开图例
# 位置: upper上 lower下 left左 right右
plt.show()

#堆积柱状图
x=np.arange(4)
y=np.random.randint(20,50,4)
y2=np.random.randint(30,80,4)
plt.bar(x,y,width=0.2,label='甲')
plt.bar(x,y2,width=0.2,bottom=y ,label='乙')
plt.legend(loc='lower right')
plt.show()

#条形图
# x=['Q1','Q2','Q3','Q4'] # 直接设置x的值
x=np.arange(4)
y=np.random.randint(20,50,4)
plt.barh(x,y)
plt.yticks(x,['Q1','Q2','Q3','Q4']) # 配置y轴刻度
plt.show()


# 直方图

h=np.random.randint(155,195,100)
bins=[155,160,165,170,175,180,185,190,195]
plt.hist(h,bins,density=True) #x轴分段，density=False, y轴频数,density=True,y轴频率
plt.xlabel('身高')
plt.ylabel('频率')
plt.show()

#箱型图
data=np.random.randint(0,100,47)
data=np.append(data,300)
data=np.append(data,-50)
data=np.append(data,140)
plt.boxplot(data,whis=4,showmeans=True,notch=True)
#whis均值+-n倍的方差   showmeans显示均值   notch边框在中位数处收紧
plt.show()

# 饼图
data=np.random.randint(0,100,5)
plt.pie(data,labels=['苹果','香蕉','梨子','橘子','草莓'],
        autopct='%.1f%%',# 显示百分比
        pctdistance=0.8, # 百分数距离同心圆的比例
        wedgeprops={'linewidth':1,'width':0.35}, #楔子属性
        explode=[0,0,0.1,0,0] )
plt.title('水果销售额')

plt.show()
# plt.savefig('.png')